home *** CD-ROM | disk | FTP | other *** search
/ Ham Radio 2000 #2 / Ham Radio 2000 - Volume 2.iso / HAMV2 / MISC / HCAL-27 / AUDFILT.BAS (.txt) < prev    next >
Encoding:
GW-BASIC  |  1997-01-27  |  4.6 KB  |  164 lines

  1. 10  'AUDFILT - Op Amp Audio filter - 13 JAN 94 rev. 29 SEP 96
  2. 20  IF EX$=""THEN EX$="EXIT"
  3. 30  CLS:KEY OFF
  4. 40  COLOR 7,0,1
  5. 50  UL$=STRING$(80,205)
  6. 60  U1$="###,###"
  7. 70  E$=STRING$(80,32)
  8. 80  PI=3.14159
  9. 90  DIM C(19)
  10. 100  DIM R(14)
  11. 110  DATA 470,500,510,560,600,620,680,750,820,910
  12. 120  DATA 1000,1100,1200,1300,1500,1600,1800,2000,2200
  13. 130  FOR Z=1 TO 19:READ C(Z):NEXT Z       'standard capacitors
  14. 140  DATA 10,12,15,18,20,22,27,33,39,47,56,68,82,100
  15. 150  FOR Z=1 TO 14:READ R(Z):NEXT Z      'standard resistors
  16. 160  '
  17. 170  '.....start
  18. 180  CLS
  19. 190  COLOR 15,2
  20. 200  PRINT " OP AMP AUDIO FILTER";TAB(57);"by George Murphy VE3ERP ";
  21. 210  COLOR 1,7:PRINT STRING$(80,223);
  22. 220  COLOR 7,0
  23. 230  '
  24. 240  '.....draw diagram
  25. 250  COLOR 0,7
  26. 260  PRINT "   U1 = #741 Op Amp                                  "
  27. 270  PRINT "                         VARPTRSOUNDSOUNDSOUNDSOUNDC1SOUNDSOUNDSOUNDSOUNDBSAVESOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDCOLOR  "
  28. 280  PRINT "                         CALL          R3            CALL  "
  29. 290  PRINT "                         CALL          CALL  VARPTRSOUNDSOUNDSOUNDSOUNDCOLOR U1  CALL  "
  30. 300  PRINT "                         CALL          CALL  <0xB4!>1  8BLOAD     CALL                "
  31. 310  PRINT "        AF in DEFDBLSOUNDSOUNDSOUNDR1SOUNDSOUNDSOUNDSOUNDBSAVEMOTORSOUNDSOUNDSOUNDSOUNDC2SOUNDSOUNDSOUNDSOUNDMOTORSOUNDSOUND<0xB4!>2  7BLOADSOUNDSOUNDCOLOR  CALL 2>F/15v        "
  32. 320  PRINT "                        CALL         VARPTRSOUNDSOUNDSOUNDSOUND<0xB4!>3  6BLOADSOUNDSOUNDCALLSOUNDSOUNDMOTORSOUNDSOUNDC3SOUNDSOUNDSOUNDDEFDBL AF out "
  33. 330  PRINT "                        CALL         CALL   VARPTR<0xB4!>4  5BLOAD  CALL    +  -           "
  34. 340  PRINT "                        CALL         CALL   CALLCLSSOUNDSOUNDSOUNDSOUND'  CALL                   "
  35. 350  PRINT "                        R2        CALL \\MOTOR\\      CALL                   "
  36. 360  PRINT "                        CALL         BLOADSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDR5SOUNDSOUNDSOUNDSOUNDMOTORSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUND + DEFSNGCOLOR      "
  37. 370  PRINT "                        CALL         CALL                         BLOAD 12v  "
  38. 380  PRINT "                        CALL         R4              VARPTRSOUNDSOUNDSOUNDSOUNDSOUND - DEFSNG'      "
  39. 390  PRINT "                        CALL         CALL               CALL                "
  40. 400  PRINT "                      \\MOTOR\\     \\MOTOR\\           \\MOTOR\\              "
  41. 410  PRINT "                                                                   "
  42. 420  COLOR 7,0
  43. 430  LOCATE 3,55:PRINT "Single pole filter shown."
  44. 440  LOCATE  ,55:PRINT "Identical poles may be"
  45. 450  LOCATE  ,55:PRINT "cascaded to form a multi-"
  46. 460  LOCATE  ,55:PRINT "section filter."
  47. 470  FOR Z=7 TO 18
  48. 480  LOCATE Z,68:PRINT STRING$(13,32);
  49. 490  NEXT Z
  50. 500  '
  51. 510  COLOR 15,1:LOCATE 19,22
  52. 520  PRINT " Press 1 to continue or 0 to EXIT....."
  53. 530  COLOR 7,0
  54. 540  Z$=INKEY$:IF Z$=""THEN 540
  55. 550  IF Z$="0"THEN CLS:RUN EX$
  56. 560  IF Z$="1"THEN 580
  57. 570  GOTO 540
  58. 580  LOCATE CSRLIN-1:PRINT STRING$(80,32);:LOCATE CSRLIN-1
  59. 590  '
  60. 600  '.....input data
  61. 610  FOR Z=1 TO 10:PRINT USING U1$;C(Z);:NEXT Z:PRINT ""
  62. 620  FOR Z=11 TO 19:PRINT USING U1$;C(Z);:NEXT Z:PRINT "   (polystyrene)"
  63. 630  PRINT UL$;
  64. 640  LOCATE 22
  65. 650  PRINT " C1 and C2 can be any value polystyrene capacitor ";
  66. 660  PRINT "from 470 pF to 2200 pF."
  67. 670  INPUT " ENTER: Value (pF) from above list for C1 and C2 ";C
  68. 680  VIEW PRINT 19 TO 24:CLS:VIEW PRINT
  69. 690  COLOR 0,7
  70. 700  LOCATE 5,27:PRINT C;"pF"
  71. 710  LOCATE 9,27:PRINT C;"pF"
  72. 720  COLOR 7,0
  73. 730  LOCATE 19
  74. 740  PRINT " Q should not exceed 5 for multi-section filters."
  75. 750  INPUT " ENTER: Desired Q:";Q
  76. 760  VIEW PRINT 19 TO 24:CLS:VIEW PRINT
  77. 770  COLOR 0,7
  78. 780  LOCATE 4,2:PRINT "   Q =";Q
  79. 790  COLOR 7,0
  80. 800  LOCATE 19
  81. 810  PRINT " Gain should not exceed 2 for multi-section filters."
  82. 820  INPUT " ENTER: Desired Gain:";G
  83. 830  COLOR 0,7
  84. 840  LOCATE 5,2:PRINT "Gain =";G
  85. 850  COLOR 7,0
  86. 860  VIEW PRINT 19 TO 24:CLS:VIEW PRINT
  87. 870  LOCATE 19:INPUT " Desired audio bandpass frequency (Hz):";F
  88. 880  LOCATE 1:PRINT E$;
  89. 890  F$=STR$(F)+" Hz AUDIO BANDPASS ACTIVE FILTER"
  90. 900  LOCATE 1,(80-LEN(F$))/2:PRINT F$
  91. 910  VIEW PRINT 19 TO 24:CLS:VIEW PRINT
  92. 920  '
  93. 930  COLOR 0,7
  94. 940  '.....calculate R1
  95. 950  W=2*PI*F
  96. 960  R=Q*10^6/(G*W*C*10^-6)
  97. 970  GOSUB 1370
  98. 980  R1$=R$
  99. 990  LOCATE 9,17:PRINT R1$
  100. 1000  '
  101. 1010  '.....calculate R2
  102. 1020  R=Q*10^6/((2*Q^2-G)*W*C*10^-6)
  103. 1030  GOSUB 1370
  104. 1040  R2$=R$
  105. 1050  LOCATE 13,23:PRINT R2$
  106. 1060  '
  107. 1070  '.....calculate R3
  108. 1080  R=2*Q*10^6/(W*C*10^-6)
  109. 1090  GOSUB 1370
  110. 1100  R3$=R$
  111. 1110  LOCATE 5,39:PRINT R3$
  112. 1120  '
  113. 1130  '.....calculate R4,R5
  114. 1140  R3=X 'from R3 calculation
  115. 1150  R=0.02*R3
  116. 1160  GOSUB 1370
  117. 1170  R4$=R$:R5$=R$
  118. 1180  LOCATE 14,40:PRINT R5$
  119. 1190  LOCATE 15,37:PRINT R4$
  120. 1200  COLOR 7,0
  121. 1210  '
  122. 1220  '.....notes
  123. 1230  LOCATE 19
  124. 1240  PRINT "1. Capacitors C1 & C2 should be polystyrene. DO NOT use disc ";
  125. 1250  PRINT "ceramic capacitors.";
  126. 1260  PRINT "2. Q should not exceed 5 and gain should not exceed 2 for ";
  127. 1270  PRINT "multisection filters";
  128. 1280  PRINT "     to minimize audio instability and ";CHR$(34);"ringing";
  129. 1290  PRINT CHR$(34);"."
  130. 1300  PRINT "3. Resistors shown are standard values close to the optimum design";
  131. 1310  PRINT " values. This";
  132. 1320  PRINT "     may cause slight alterations in the selected gain and audio ";
  133. 1330  PRINT "frequency.";
  134. 1340  GOSUB 1510
  135. 1350  CLS:GOTO 170
  136. 1360  '
  137. 1370  '.....select standard resistor
  138. 1380  M=0.1             'multiplier base
  139. 1390  FOR Z=1 TO 14
  140. 1400  X=R(Z)*M
  141. 1410  IF X>R THEN 1450
  142. 1420  NEXT Z
  143. 1430  M=M*10
  144. 1440  GOTO 1390
  145. 1450  Y=X:Y$=" -"
  146. 1460  IF X>=1000 THEN Y=X/1000:Y$=" k-"
  147. 1470  IF X>=10^6 THEN Y=X/10^6:Y$=" M-":GOTO 1480
  148. 1480  R$=STR$(Y)+Y$
  149. 1490  RETURN
  150. 1500  '
  151. 1510  'HARDCOPY
  152. 1520  GOSUB 1630:LOCATE 25,2:COLOR 14,6
  153. 1530  PRINT " Press 1 to print screen, 2 to print screen & ";
  154. 1540  PRINT "advance paper, or 3 to continue.";:COLOR 7,0
  155. 1550  Z$=INKEY$:IF Z$="3"THEN GOSUB 1630:RETURN
  156. 1560  IF Z$="1"OR Z$="2"THEN GOSUB 1630:GOTO 1580
  157. 1570  GOTO 1550
  158. 1580  FOR QX=1 TO 24:FOR QY=1 TO 80
  159. 1590  LPRINT CHR$(SCREEN(QX,QY));
  160. 1600  NEXT QY:NEXT QX
  161. 1610  IF Z$="2"THEN LPRINT CHR$(12)
  162. 1620  GOTO 1520
  163. 1630  LOCATE 25,1:PRINT STRING$(80,32);:RETURN
  164.